package cllectiondemo;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class TestDriverList {

    public static void main(String[] args) {
        System.out.println("============================================");
        System.out.println("======List接口---ArrayList==========");
        test02();
        System.out.println("============================================");
        System.out.println("======List接口---LinkedList==========");
        test021();
    }
    /**
     * List接口---ArrayList
     */
    public static void test02(){
        //创建一个List集合对象
        //软件工程编程规范：面对接口的编程
        List list = new ArrayList();//List接口---ArrayList
        //添加元素
        list.add("李四");
        list.add("王五");
        list.add("赵四");
        list.add("小二");
        list.add(null);
        list.add(null);

        //遍历元素
        System.out.println("使用Iterator接口进行遍历list集合的元素：");
        //获取集合的迭代器
        Iterator iterator = list.iterator();
        //使用while循环一次遍历元素值
        while (iterator.hasNext()){
            //取出当前遍历的元素
            String str = (String) iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行List集合的元素：（获取空值）");
        for (Object obj:list) {//获取空值
            System.out.println(obj);

        }
        System.out.println("使用标准for循环进行遍历List集合的元素：(不获取空值)");
        for (int i=0;i<list.size();i++){//不获取空值
            System.out.println(list.get(i));
        }
    }

    /**
     * List接口----LinkedList
     */
    public static void test021(){
        //创建一个List集合对象
        //软件工程编程规范：面向接口的编程
        List list = new LinkedList();//List接口----LinkedList
        //添加元素
        list.add("万物");
        list.add("的成熟度从");
        list.add(" 大打出手");
        list.add("出色的次");
        list.add("成都市出生地");
        list.add(null);
        list.add(null);
        list.add(null);

        //遍历元素
        System.out.println("使用Iterator接口进行遍历List集合的元素：");
        //获取集合的迭代器
        Iterator iterator = list.iterator();
        //while循环一次遍历元素值
        while (iterator.hasNext()){
            //取出当前遍历的元素
            String str = (String)iterator.next();
            System.out.println(str);
        }
        System.out.println("使用foreach增强型的for循环进行List集合的元素：（获取空值）");
        for (Object obj:list) {//获取空值
            System.out.println(obj);

        }
        System.out.println("使用标准for循环进行遍历List集合的元素：(获取空值)");
        for (int i=0;i<list.size();i++){//不获取空值
            System.out.println(list.get(i));
        }

    }


}
